/*
 * Copyright 2006-2022 ahtelit.com, All Rights Reserved.
 */

package com.telit.firecommand.model.attendInfo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.List;


/**
 * SaveNoteRequest
 *
 * @author yuezhuang
 * @since 2023-02-19
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "SaveNoteRequest", description = "保存记录信息")
public class SaveNoteRequest implements Serializable {

    private static final long serialVersionUID = -1L;

    @ApiModelProperty(value = "当前登录用户id")
    private Long userId;

    @ApiModelProperty(value = "当前行政区划编码")
    private String districtCode;

    @ApiModelProperty(value = "班次id")
    private Long attendInfoId;

    @ApiModelProperty(value = "应急事务")
    private EmergencyAffairs emergencyAffairs;

    @ApiModelProperty(value = "晨报")
    private Daily daily;

    @ApiModelProperty(value = "值班情况")
    private Duty duty;

    @ApiModelProperty(value = "交班信息")
    private Turn turn;


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @ApiModel(value = "EmergencyAffairs", description = "应急事务")
    public static class EmergencyAffairs implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "id（修改时必传）")
        private Long id;

        @ApiModelProperty(value = "标题")
        private String title;

        @ApiModelProperty(value = "地点")
        private String place;

        @ApiModelProperty(value = "经度")
        private String longitude;

        @ApiModelProperty(value = "纬度")
        private String latitude;

        @ApiModelProperty(value = "事件类型：1-突发事务 2-领导通知")
        private Integer eventType;

        @ApiModelProperty(value = "发生日期")
        private String timeAt;

        @ApiModelProperty(value = "现场情况")
        private String siteSituation;

        @ApiModelProperty(value = "当前情况")
        private String currentSituation;

        @ApiModelProperty(value = "处置记录")
        private String disposal;

        @ApiModelProperty(value = "事务描述")
        private String description;

        @ApiModelProperty(value = "领导指示（修改时，请勿传递已存在的领导指示信息，只传递新增的指示信息）")
        private List<String> descriptionList;

    }


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @ApiModel(value = "Daily", description = "晨报")
    public static class Daily implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "id（修改时必传）")
        private Long id;

        @ApiModelProperty(value = "工作情况")
        private String workInfo;

        @ApiModelProperty(value = "调度情况")
        private String dispatchInfo;

        @ApiModelProperty(value = "火情反馈")
        private String fireFeedback;

        @ApiModelProperty(value = "综合分析")
        private String analyseInfo;

    }


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @ApiModel(value = "Duty", description = "值班情况")
    public static class Duty implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "内容")
        private String description;

    }


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @ApiModel(value = "Turn", description = "交班信息")
    public static class Turn implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "交班人id")
        private Long turnId;

        @ApiModelProperty(value = "交班人名称")
        private String turnName;

        @ApiModelProperty(value = "交班人手机号")
        private String turnMobile;

        @ApiModelProperty(value = "内容")
        private String description;

    }

}
